/**
 * TipoMiembro.java
 * Fecha de creación: 25/09/2013, 15:27:35
 */
package mx.adventista.iglesia.modelo.catalogo;

/**
 * Tipos de miembros
 * @author Edgardo Zavala (edgardo.zavala@gmail.com)
 */
public enum TipoMiembro {

	/**
	 * Miembro de iglesia
	 */
	MIEMBRO(10, "Miembro", "Miembro de iglesia", true),

	/**
	 * Visita de iglesia
	 */
	VISITA(11, "Visita", "Visita de iglesia", true);

	private int id;
	private String clave;
	private String descripcion;
	private boolean activo;

	private TipoMiembro(int id, String clave, String descripcion, boolean activo) {
		this.id = id;
		this.clave = clave;
		this.descripcion = descripcion;
		this.activo = activo;
	}

	/**
	 * Obtiene el enum a partir del identificador
	 * @author Edgardo Zavala (edgardo.zavala@gmail.com)
	 * @param id
	 * @return {@link TipoMiembro}
	 */
	public static TipoMiembro valueOf(int id) {
		for (TipoMiembro tipoMiembro : values()) {
			if (tipoMiembro.getId() == id) {
				return tipoMiembro;
			}
		}

		throw new IllegalArgumentException("id invalido para obtener el tipo de miembro: "
			+ id);

	}

	/**
	 * @return el atributo id
	 */
	public int getId() {
		return id;
	}

	/**
	 * @return el atributo clave
	 */
	public String getClave() {
		return clave;
	}

	/**
	 * @return el atributo descripcion
	 */
	public String getDescripcion() {
		return descripcion;
	}

	/**
	 * @return el atributo activo
	 */
	public boolean isActivo() {
		return activo;
	}

}
